Skip to content

Implement Celica boss practice fights - #18

Open
VAGUE000 wants to merge 4 commits into
reiserFSs:masterfrom
VAGUE000:master
Open

Implement Celica boss practice fights#18
VAGUE000 wants to merge 4 commits into
reiserFSs:masterfrom
VAGUE000:master

Conversation

@VAGUE000

Copy link
Copy Markdown

Summary

Implements Celica boss practice support.

  • Unlocks configured bosses in Celica’s Class
  • Adds SimulateTrainInfo pre-fight support
  • Builds the official boss NpcGroupList with difficulty, period, attack, and HP modifiers
  • Adds correct settlement data
  • Uses generated client-derived SimulateTrain tables
  • Adds compatibility coverage

Fixes

  • Celica boss menu now appears
  • Bosses no longer die immediately
  • Correct boss and difficulty appear after combat

Verification

dotnet run --project AscNet.Test/AscNet.Test.csproj -- --simulate-train-compat-only
dotnet build AscNet/AscNet.csproj --no-restore

@reiserFSs

Copy link
Copy Markdown
Owner

Thanks for the implementation. The core SimulateTrain pre-fight/NPC-group work looks salvageable, but this is not merge-ready yet:

  1. GitHub currently reports the PR as DIRTY; please rebase and resolve conflicts against current master.
  2. AccountModule.BuildNotifyArchiveLoginData emits every configured NPC variant with Killed = 1 on every login. That fabricates player archive history/completion. Please unlock the practice entries without synthesizing kills; preserve real persisted encounter history.
  3. The generated SimulateTrain tables drop authoritative TimeId and ImpasseTimeId fields. TryApplyPreFight therefore allows time-gated bosses/impasse difficulties outside their configured windows. Please retain those fields and validate them through the activity schedule.
  4. Period is not validated. An unsupported period currently succeeds and merely omits the period buff. Please reject periods not configured for the selected boss.

After those changes and conflict resolution, this should be re-reviewed.

@VAGUE000
VAGUE000 force-pushed the master branch 5 times, most recently from e705af9 to ba617af Compare August 26, 2026 14:25
@reiserFSs

Copy link
Copy Markdown
Owner

Thanks — the previous blockers are fixed, the PR is now conflict-free, and both --simulate-train-compat-only and the full compatibility harness pass against current master.

One P1 blocker remains before merge: Resources/table/share/activity/ActivitySchedule.tsv adds SimulateTrain TimeIds 30305–36304 from a retail NotifyLogin capture and assigns EndTime=0. TryApplyPreFight consumes those rows at runtime, so historical rotating/Impasse stages become permanently open. A capture is a point-in-time oracle and cannot establish a permanent schedule.

Please remove those snapshot-derived rows or replace them with an authoritative schedule source. If no authoritative source exists, leave those gated modes unavailable rather than enabling them from captured timestamps. After that, this should be mergeable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants